package zisu.rabbit.rabbitmqspring;

import zisu.rabbit.rabbitmqspring.entity.Order;
import zisu.rabbit.rabbitmqspring.entity.Packaged;

import java.io.File;
import java.util.Map;

/**
 * @Author: 蔡翔
 * @Date: 2019/8/13 16:50
 * @Version 1.0
 */
public class MessageDelegate {

    //注意这个handleMessage 名字是固定的。
    public void handleMessage(byte[] messageBody){
        System.out.println("delegate默认方法，消息内容1："+new String(messageBody));
    }

    /*public void consumeMessage(byte[] messageBody){
        System.out.println("delegate默认方法，消息内容2："+new String(messageBody));
    }*/

    public void consumeMessage(String messageBody){
        System.out.println("delegate默认方法，消息内容3直接string:"+messageBody);
    }

    public void method1(String messageBody){
        System.out.println("method1 收到消息内容:"+messageBody);
    }
    public void method2(String messageBody){
        System.out.println("method2 收到消息内容:"+messageBody);
    }

    public void consumeMessage(Map messageBody){  //JSON 是Map格式的
        System.out.println("map方法，消息内容（JSON）order对象是："+messageBody);
    }
    public void consumeMessage(Order order){  //JSON 是Map格式的
        System.err.println("map方法，消息内容（order--java对象）：" + order.getId()+
                ",name:"+order.getName()+
                ",content:"+order.getContent()
        );
    }
    public void consumeMessage(Packaged packaged){  //JSON 是Map格式的
        System.err.println("map方法，消息内容（packaged--java对象）：" + packaged.getId()+
                ",name:"+packaged.getName()+
                        ",desc"+packaged.getDescription()
                );
    }

    public void consumeMessage(File file){
        System.err.println("文件对象方法，消息内容："+file.getName());
    }
}